#include <string>
using namespace std;

#include <QCoreApplication>
#include "Pizza.h"
#include "SimplePizzaFactory.h"
#include "PizzaStore.h"
#include "PizzaStore2.h"

//static factory method
void pizzaStoreStaticFactoryMethod()
{
    //    static factory method
    std::string pizzaType {"cheese"};
//    PizzaStore *pizzaStore = PizzaStore::createPizza(pizzaType);
}

void pizzaStoreSimpleFactoryMethod()
{
    //    simple factory
    PizzaFactory *simplePizzaFactory = new PizzaFactory();
    simplePizzaFactory->createPizza("cheese");

    PizzaStore2 *pizzaStore2 = new PizzaStore2(simplePizzaFactory);
    pizzaStore2->orderPizza("cheese");
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    pizzaStoreStaticFactoryMethod();
//    pizzaStoreSimpleFactoryMethod();
    return a.exec();
}
